#include <iostream>
#include <cstring>
using namespace std;

/*
	保护继承和私有继承什么情况下使用？
        has-a这种关系就可以使用保护继承或者私有继承来描述
    保护继承和私有继承有啥区别？
	    私有继承，父类的资源只能传递一代
		保护继承，父类的资源可以传递N代
*/
class Car
{
public:
	void show()
	{
		cout<<"我是一台法拉利"<<endl;
	}
private:
	void motor()
	{
		cout<<"用的V12的发动机"<<endl;
	}
protected:
	void showColor()
	{
		cout<<"法拉利是黄颜色的"<<endl;
	}
};

//老师拥有汽车
class Teacher:protected Car //保护继承，描述has-a
{
public:
	void fun()
	{
		show();
		showColor();
	}
};

class OeyTeacher:protected Teacher
{
public:
	void otherfun()
	{
		show();
		showColor();
	}	
};

class xiaoxueTeacher:protected OeyTeacher
{
public:
	void xiaoxuefun()
	{
		show();
		showColor();
	}	
};



int main(int argc,char **argv)
{
	//Teacher t1;
	//t1.fun();
	

	OeyTeacher o1;
	o1.otherfun();
	
	xiaoxueTeacher x1;
	x1.xiaoxuefun();
	return 0;	
}